package ar.com.fiuba.team2.services.fake;

import java.io.StringReader;
import java.rmi.RemoteException;
import java.util.List;

import org.apache.axis2.AxisFault;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import com.ws.services.IntegracionStub;

public class IntegracionFakeStub extends IntegracionStub {
	
	public IntegracionFakeStub(String targetEndpoint) throws AxisFault {
	}

	/* (non-Javadoc)
	 * @see com.ws.services.IntegracionStub#actualizarDatos(com.ws.services.IntegracionStub.ActualizarDatos)
	 */
	@Override
	public ActualizarDatosResponse actualizarDatos(
			ActualizarDatos actualizarDatos2) throws RemoteException {

		ActualizarDatosResponse actualizarDatos = new ActualizarDatosResponse();
		String arg0 = "<WS><numero>2</numero></WS>";
		actualizarDatos.set_return(arg0);
		
		return actualizarDatos;
	}

	/* (non-Javadoc)
	 * @see com.ws.services.IntegracionStub#eliminarDatos(com.ws.services.IntegracionStub.EliminarDatos)
	 */
	@Override
	public EliminarDatosResponse eliminarDatos(EliminarDatos eliminarDatos0)
			throws RemoteException {
		String arg0 = "<WS><numero>2</numero></WS>";
		
		EliminarDatosResponse eliminarDatos = new EliminarDatosResponse();
		eliminarDatos.set_return(arg0);
		return eliminarDatos;
	}

	/* (non-Javadoc)
	 * @see com.ws.services.IntegracionStub#guardarDatos(com.ws.services.IntegracionStub.GuardarDatos)
	 */
	@Override
	public GuardarDatosResponse guardarDatos(GuardarDatos guardarDatos6)
			throws RemoteException {
		String arg0 = "<WS><numero>2</numero></WS>";
		
		GuardarDatosResponse guardarDatos = new GuardarDatosResponse();
		guardarDatos.set_return(arg0);
		return guardarDatos;
	}

	/* (non-Javadoc)
	 * @see com.ws.services.IntegracionStub#seleccionarDatos(com.ws.services.IntegracionStub.SeleccionarDatos)
	 */
	@Override
	public SeleccionarDatosResponse seleccionarDatos(
			SeleccionarDatos seleccionarDatos4) throws RemoteException {
		
		SeleccionarDatosResponse seleccionarDatos = new SeleccionarDatosResponse();
		seleccionarDatos.set_return(parseXML(seleccionarDatos4.getXml()));
		return seleccionarDatos;
	}

	private String parseXML(String xml) {
		
		SAXBuilder saxBuilder = new SAXBuilder();
		String message = null;
		try {
			org.jdom2.Document doc = saxBuilder.build(new StringReader(xml));
			List<org.jdom2.Element> result = doc.getRootElement().getChildren();
			for (org.jdom2.Element element : result) {
				if ("MiembroChat".equals(element.getName())) {
					message = "<WS><list><MiembroChat><id>10</id><nombre>";
					message += element.getChildText("nombe");
					message += "</nombre><estado>1</estado></MiembroChat></list></WS>";
				} else if ("Chat".equals(element.getName())) {
					message = "<WS><list><Chat><id>2</id><idAmbito>6</idAmbito></Chat></list></WS>";
				} else if ("MensajeChat".equals(element.getName())) {
					message = "<WS><MensajeChat><contenido>lala</contenido></MensajeChat></WS>";
				}  
			}
		} catch (JDOMException e) {
		} catch (java.io.IOException e) {
		}
		return message;
	}
	
}
